← ALL ARTICLES
纹理技术4 MIN READ

Texture Streaming

全库目录221
本文目录7

相机走近物体,着色器需要更细的mip,而上传可能还没有结束。纹理流送因此要分别记录采样需求、预算目标和实际驻留状态。只有理解这三个状态的差距,才能区分低清来自估计错误、预算不足还是加载延迟。

需求层级与实际驻留

mip编号0表示基级,编号越大越粗。本文把“驻留mip”定义为可采样的最细层r,r之后的粗层连续保留;这是一种按完整mip流送的模型。按页处理的系统见Virtual Texture。

设一段表面的世界长度为L米,UV跨度为q,纹理横向宽度为W纹素,这段表面投影为P像素,则每屏幕像素约覆盖 rho = q*W/P 个纹素,需求层级约为 log2(rho)。例如1024纹素覆盖256屏幕像素,需求为mip2。实现可向更细一侧取整并限制到有效范围;三线性过滤还要使相邻层可用。

L可以通过投影估计P,也可由几何UV密度估计q/L。各向异性、透视变化和不可见区域让对象级估计偏保守。像素反馈能更贴近实际采样,却增加读回和调度延迟。需求来自多个对象或相机时,按所需最细层合并,再参与预算分配。

需求估计误差

材质把UV乘4,同一屏幕区域会容纳更多次平铺,每像素覆盖的源纹素数也乘4,需求编号增加2级,即使用更粗mip。UV缩小到四分之一则需要更细2级。密度估计错误可能浪费驻留内存,也可能选出过粗层;各相机需求合并错误还可能让主视图被次视图降级。动态图集、粒子和程序UV需要显式提供密度或请求层级,不能仅由Bounds推断。

预算分配

令第k级的实际块载荷为B[k],从r级开始驻留的载荷是 S(r)=sum(B[r:])。提升一层需要额外B[r-1]字节。块数按纹理尺寸向上取整,细长纹理和小mip都应逐级计算,见纹理压缩格式。

一个可解释的优先级调度器先为所有纹理保留最粗回退层,再按优先级分配更细层:

text
target[i] = lastMip[i]
used = sum(bytes[i][target[i]])
若 used > budget:报告回退资源本身超出预算
按 priority 降序、资源ID升序遍历纹理 i:
    当 target[i] > desired[i]:
        added = bytes[i][target[i]-1]
        若 used + added > budget:结束当前纹理提升
        target[i] -= 1
        used += added

这是明确偏向高优先级资源的教学策略。它可能让低优先级资源长期停在粗层;实际产品还可加入等待时间、可见面积和每字节画质收益。两张纹理每级成本均为[64,16,4,1]字节、总预算22字节时,高优先级纹理能驻留1—3级共21字节,另一张仅保留3级1字节。

上传发布与回收

预算目标不是立即可用的资源。请求应按“资源、mip、内容版本”去重,读取与解码完成后提交上传。GPU完成上传并满足采样访问状态后,才发布能访问新层的视图或页映射。发布前仍采样旧的有效层。

降低目标层级时,先让未来绘制停止访问被淘汰层,再等待旧视图的录制保留全部退出、已提交GPU使用全部结束,随后释放对应物理存储。尚未提交的命令也可能引用旧层,不能只检查已提交完成值;三态保留与回收协议见GPU资源生命周期。只提高Sampler的最小LOD并不自动释放显存;普通资源重建、可驻留资源和稀疏绑定各有不同回收接口。

预算还要扣除上传暂存、等待回收的旧资源及同时在途的请求。如果旧纹理与新纹理短时并存,只统计目标载荷会低估峰值。升降级使用不同阈值或延时,能避免相机在边界徘徊时反复读盘。

假设旧资源驻留21字节,新目标载荷也是21字节,重建期间还需要8字节上传暂存。上传与切换前的峰值至少为21+21+8=50字节,不能只按最终21字节判断预算充足。发布新视图后,旧资源仍可能被两帧前的命令引用;它只能在对应完成值达到以后从等待回收账本移除。降低target而resident暂未降低时,预算管理应反映这份实际差额。

验证与诊断

同时显示desired、target、resident三个层级。desired过粗先查UV密度与投影;target比desired粗先查预算竞争;resident比target粗再查IO、解码、上传完成值和发布状态。瞬移、多个相机、动态材质与预算耗尽分别测试,并记录低清持续帧数。

reference.py的stream_targets实现上述预算分配,运行 python -B 知识库/examples/revision_06_08/test_reference.py 检查回退超预算、优先级分配与达到目标后的停止。模型未创建纹理或执行IO;引擎运行与GPU驻留测量为尚未验证。

相关主题

参考资料